var count = 30;
// let count = 20;//语法错误

const MAX = 100;
// const MIN;//语法错误：常量未初始化

function fn1() {
  var MAX = 900;
  console.log(MAX);//900
}
fn1()
//--------------------------------------------------------------------
//const 声明对象

const person = {
  name:'funlee'
}
//语法错误
// person = {
//   age:20
// }
person.age = 20;
console.log(person.age)
//--------------------------------------------------------
console.log(typeof value)
if(condition) {
  console.log(typeof value)
  let value = 'blue'
}
//------------------------------------------
for(let i = 0;i < 4;i++) {
  console.log(i)
}
console.log('i =' + i)
//---------------------------------------------
var funcs = []
for(var i = 0;i < 10;i++) { //var 改为 let
  //使用var
  //循环里的每次迭代同时共享着变量i，循环内部创建的函数全部保留了对相同变量的引用，循环结束时i的值为10，所以，每次输出调用每次都是10
  funcs.push(function(){console.log(i)})
}
funcs.forEach(function(func) {
  func()
})
//----------------------------------------------
//使用IIFE -- 立即调用函数表达式，以强制生成计数器变量的副本
var funcs = []
for(var i = 0;i < 10;i++) {
  funcs.push(
    function(value) {
      return function() {
        console.log(value)
      }
    }(i)
  )
}
funcs.forEach(function(func) {
  func()
})
